using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._GeoAnalyticsDesktopTools._Utilities._BigDataConnections
{
    /// <summary>
    /// <para>Remove Dataset From Big Data Connection</para>
    /// <para>Removes one or more datasets from an existing big data connection (BDC). This tool only removes the dataset from the BDC file, the source data is not modified.</para>
    /// <para>从现有大数据连接 （BDC） 中删除一个或多个数据集。此工具仅从 BDC 文件中删除数据集，不会修改源数据。</para>
    /// </summary>    
    [DisplayName("Remove Dataset From Big Data Connection")]
    public class RemoveDatasetFromBDC : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public RemoveDatasetFromBDC()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_bdc_datasets">
        /// <para>Big Data Connection Datasets</para>
        /// <para>The datasets to remove from the .bdc file.</para>
        /// <para>要从 .bdc 文件中删除的数据集。</para>
        /// </param>
        public RemoveDatasetFromBDC(List<object> _bdc_datasets)
        {
            this._bdc_datasets = _bdc_datasets;
        }
        public override string ToolboxName => "GeoAnalytics Desktop Tools";

        public override string ToolName => "Remove Dataset From Big Data Connection";

        public override string CallName => "gapro.RemoveDatasetFromBDC";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_bdc_datasets, _updated_bdc];

        /// <summary>
        /// <para>Big Data Connection Datasets</para>
        /// <para>The datasets to remove from the .bdc file.</para>
        /// <para>要从 .bdc 文件中删除的数据集。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Big Data Connection Datasets")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public List<object> _bdc_datasets { get; set; }


        /// <summary>
        /// <para>Updated BDC</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Updated BDC")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public List<object> _updated_bdc { get; set; }


        public RemoveDatasetFromBDC SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}